package com.vvv.designpattern.dprecated.observer;

import com.vvv.designpattern.dprecated.DeprecatedConstants;
import com.vvv.designpattern.dprecated.state.DeprecatedAbstractOrderState;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

/**
 * @author vvv
 * @date 2023-11-20 13 21
 * discription
 * DeprecatedXXXObserver 为观察者模式的具体观察者角色，实现观察者的职责方法
 */
@Component
public class DeprecatedReceiveObserver extends DeprecatedAbstractObserver {

    /**
     * 完成bean注入后，将自己填入被观察者的OBSERVER_LIST中
     */
    @PostConstruct
    public void init() {
        DeprecatedConstants.OBSERVER_LIST.add(this);
    }

    @Override
    public void orderStateHandle(String orderId, String orderState) {
        // 1. 接收完成后，ordersState必须是已完成状态才能进行下面的处理
        if (!DeprecatedAbstractOrderState.ORDER_FINISH.equals(orderState)) {
            return;
        }
        // TODO 2. 通过命令模式进行后序处理
        System.out.println("监听到：接收成功，通过命令模式作后序处理");
    }
}
